package com.qf.entity;

import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;

@Data
@Accessors(chain = true)
public class R<T> implements Serializable {

    private Integer code;
    private String msg;
    private T data;

    /**
     * 返回一个成功的R对象
     */
    public static <S> R succ(S data) {
        return new R<S>().setCode(Codes.SUCC.getCode()).setMsg(Codes.SUCC.getMsg()).setData(data);
    }

    /**
     * 返回一个成功的状态
     */
    public static R succ(){
        return succ(null);
    }

    /**
     * 返回一个错误的R对象
     */
    public static R error(Codes codes) {
        return error(codes, null);
    }

    /**
     * 返回一个错误的R对象
     */
    public static <S> R error(Codes codes, S data) {
        return new R().setCode(codes.getCode()).setMsg(codes.getMsg()).setData(data);
    }
}
